package org.zlb.netty.server;

import org.zlb.netty.client.rpc.ICacl;
import org.zlb.netty.client.rpc.IHello;
import org.zlb.netty.server.echo.EchoServer;
import org.zlb.netty.server.http.HttpFileServer;
import org.zlb.netty.server.marshalling.MarshallingServer;
import org.zlb.netty.server.rpc.CaclImpl;
import org.zlb.netty.server.rpc.HelloImpl;
import org.zlb.netty.server.rpc.RpcMessageServer;
import org.zlb.netty.server.serial.SubReqProtoServer;
import org.zlb.netty.server.serial.SubReqServer;
import org.zlb.netty.server.time.TimeServer;
import org.zlb.netty.server.udp.ChinesProverServer;
import org.zlb.netty.server.websocket.WebSocketServer;

public class App 
{
    public static void main(String[] args) throws Exception {
        int port = 8088;
        if (args.length > 0) {
            port = Integer.parseInt(args[0]);
        }

//        new DiscardServer(port).run();
//        new TimeServer(port).run();
//        new EchoServer(port).run();
//        new SubReqServer(port).run();
//        new SubReqProtoServer(port).run();
//        new HttpFileServer(port).run();
        
//        RpcMessageServer server = new RpcMessageServer(port);
//        IHello hello = new HelloImpl();
//        ICacl calc = new CaclImpl();
//        server.register(IHello.class.getName(), hello);
//        server.register(ICacl.class.getName(), calc);
//        server.run();
        
//        ChinesProverServer cs = new ChinesProverServer(port);
//        cs.run();
        
//        WebSocketServer ws = new WebSocketServer(port);
//        ws.run();
        MarshallingServer server = new MarshallingServer(port);
        server.run();
    }
}
